home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagg_m.zip / MATH.SWG / 0023_Math Conversion Unit.pas < prev    next >
Pascal/Delphi Source File  |  1993-07-17  |  8KB  |  429 lines

  1. { MATH Unit for various conversions }
  2. {$DEFINE Use8087}  { define this for EXTENDED 8087 floating point math }
  3.  
  4. UNIT MATH;
  5.  
  6. {$IFDEF Use8087}
  7. {$N+}
  8. {$ELSE
  9. {$N-}
  10. {$ENDIF}
  11.  
  12. INTERFACE
  13.  
  14. TYPE
  15.     {$IFDEF Use8087}
  16.     FLOAT = EXTENDED;
  17.     {$ELSE}
  18.     FLOAT = REAL;
  19.     {$ENDIF}
  20.  
  21. FUNCTION  FahrToCent(FahrTemp: FLOAT): FLOAT;
  22. FUNCTION  CentToFahr(CentTemp: FLOAT): FLOAT;
  23. FUNCTION  KelvToCent(KelvTemp: FLOAT): FLOAT;
  24. FUNCTION  CentToKelv(CentTemp: FLOAT): FLOAT;
  25. PROCEDURE InchToFtIn(Inches: FLOAT; VAR ft,ins: FLOAT);
  26. FUNCTION  FtInToInch(ft,ins: FLOAT): FLOAT;
  27. FUNCTION  InchToYard(Inches: FLOAT): FLOAT;
  28. FUNCTION  YardToInch(Yards: FLOAT): FLOAT;
  29. FUNCTION  InchToMile(Inches: FLOAT): FLOAT;
  30. FUNCTION  MileToInch(Miles: FLOAT): FLOAT;
  31. FUNCTION  InchToNautMile(Inches: FLOAT): FLOAT;
  32. FUNCTION  NautMileToInch(NautMiles: FLOAT): FLOAT;
  33. FUNCTION  InchToMeter(Inches: FLOAT): FLOAT;
  34. FUNCTION  MeterToInch(Meters: FLOAT): FLOAT;
  35. FUNCTION  SqInchToSqFeet(SqInches: FLOAT): FLOAT;
  36. FUNCTION  SqFeetToSqInch(SqFeet: FLOAT): FLOAT;
  37. FUNCTION  SqInchToSqYard(SqInches: FLOAT): FLOAT;
  38. FUNCTION  SqYardToSqInch(SqYards: FLOAT): FLOAT;
  39. FUNCTION  SqInchToSqMile(SqInches: FLOAT): FLOAT;
  40. FUNCTION  SqMileToSqInch(SqMiles: FLOAT): FLOAT;
  41. FUNCTION  SqInchToAcre(SqInches: FLOAT): FLOAT;
  42. FUNCTION  AcreToSqInch(Acres: FLOAT): FLOAT;
  43. FUNCTION  SqInchToSqMeter(SqInches: FLOAT): FLOAT;
  44. FUNCTION  SqMeterToSqInch(SqMeters: FLOAT): FLOAT;
  45. FUNCTION  CuInchToCuFeet(CuInches: FLOAT): FLOAT;
  46. FUNCTION  CuFeetToCuInch(CuFeet: FLOAT): FLOAT;
  47. FUNCTION  CuInchToCuYard(CuInches: FLOAT): FLOAT;
  48. FUNCTION  CuYardToCuInch(CuYards: FLOAT): FLOAT;
  49. FUNCTION  CuInchToCuMeter(CuInches: FLOAT): FLOAT;
  50. FUNCTION  CuMeterToCuInch(CuMeters: FLOAT): FLOAT;
  51. FUNCTION  FluidOzToPint(FluidOz: FLOAT): FLOAT;
  52. FUNCTION  PintToFluidOz(Pints: FLOAT): FLOAT;
  53. FUNCTION  FluidOzToImpPint(FluidOz: FLOAT): FLOAT;
  54. FUNCTION  ImpPintToFluidOz(ImpPints: FLOAT): FLOAT;
  55. FUNCTION  FluidOzToGals(FluidOz: FLOAT): FLOAT;
  56. FUNCTION  GalsToFluidOz(Gals: FLOAT): FLOAT;
  57. FUNCTION  FluidOzToImpGals(FluidOz: FLOAT): FLOAT;
  58. FUNCTION  ImpGalsToFluidOz(ImpGals: FLOAT): FLOAT;
  59. FUNCTION  FluidOzToCuMeter(FluidOz: FLOAT): FLOAT;
  60. FUNCTION  CuMeterToFluidOz(CuMeters: FLOAT): FLOAT;
  61. PROCEDURE OunceToLbOz(Ounces: FLOAT; VAR lb,oz: FLOAT);
  62. FUNCTION  LbOzToOunce(lb,oz: FLOAT): FLOAT;
  63. FUNCTION  OunceToTon(Ounces: FLOAT): FLOAT;
  64. FUNCTION  TonToOunce(Tons: FLOAT): FLOAT;
  65. FUNCTION  OunceToLongTon(Ounces: FLOAT): FLOAT;
  66. FUNCTION  LongTonToOunce(LongTons: FLOAT): FLOAT;
  67. FUNCTION  OunceToGram(Ounces: FLOAT): FLOAT;
  68. FUNCTION  GramToOunce(Grams: FLOAT): FLOAT;
  69.  
  70.  
  71.  
  72. IMPLEMENTATION
  73.  
  74. { Temperature conversion }
  75.  
  76. FUNCTION FahrToCent(FahrTemp: FLOAT): FLOAT;
  77.  
  78.     BEGIN
  79.         FahrToCent:=(FahrTemp+40.0)*(5.0/9.0)-40.0;
  80.     END;
  81.  
  82.  
  83. FUNCTION CentToFahr(CentTemp: FLOAT): FLOAT;
  84.  
  85.     BEGIN
  86.         CentToFahr:=(CentTemp+40.0)*(9.0/5.0)-40.0;
  87.     END;
  88.  
  89.  
  90. FUNCTION KelvToCent(KelvTemp: FLOAT): FLOAT;
  91.  
  92.     BEGIN
  93.         KelvToCent:=KelvTemp-273.16;
  94.     END;
  95.  
  96.  
  97. FUNCTION CentToKelv(CentTemp: FLOAT): FLOAT;
  98.  
  99.     BEGIN
  100.         CentToKelv:=CentTemp+273.16;
  101.     END;
  102.  
  103.  
  104.  
  105. { Linear measurement conversion }
  106.  
  107. PROCEDURE InchToFtIn(Inches: FLOAT; VAR ft,ins: FLOAT);
  108.  
  109.     BEGIN
  110.         ft:=INT(Inches/12.0);
  111.         ins:=Inches-ft*12.0;
  112.     END;
  113.  
  114.  
  115. FUNCTION FtInToInch(ft,ins: FLOAT): FLOAT;
  116.  
  117.     BEGIN
  118.         FtInToInch:=ft*12.0+ins;
  119.     END;
  120.  
  121.  
  122. FUNCTION InchToYard(Inches: FLOAT): FLOAT;
  123.  
  124.     BEGIN
  125.         InchToYard:=Inches/36.0;
  126.     END;
  127.  
  128.  
  129. FUNCTION YardToInch(Yards: FLOAT): FLOAT;
  130.  
  131.     BEGIN
  132.         YardToInch:=Yards*36.0;
  133.     END;
  134.  
  135.  
  136. FUNCTION InchToMile(Inches: FLOAT): FLOAT;
  137.  
  138.     BEGIN
  139.         InchToMile:=Inches/63360.0;
  140.     END;
  141.  
  142.  
  143. FUNCTION MileToInch(Miles: FLOAT): FLOAT;
  144.  
  145.     BEGIN
  146.         MileToInch:=Miles*63360.0;
  147.     END;
  148.  
  149.  
  150. FUNCTION InchToNautMile(Inches: FLOAT): FLOAT;
  151.  
  152.     BEGIN
  153.         InchToNautMile:=Inches/72960.0;
  154.     END;
  155.  
  156.  
  157. FUNCTION NautMileToInch(NautMiles: FLOAT): FLOAT;
  158.  
  159.     BEGIN
  160.         NautMileToInch:=NautMiles*72960.0;
  161.     END;
  162.  
  163.  
  164. FUNCTION InchToMeter(Inches: FLOAT): FLOAT;
  165.  
  166.     BEGIN
  167.         InchToMeter:=Inches*0.0254;
  168.     END;
  169.  
  170.  
  171. FUNCTION MeterToInch(Meters: FLOAT): FLOAT;
  172.  
  173.     BEGIN
  174.         MeterToInch:=Meters/0.0254;
  175.     END;
  176.  
  177.  
  178.  
  179. { Area conversion }
  180.  
  181. FUNCTION SqInchToSqFeet(SqInches: FLOAT): FLOAT;
  182.  
  183.     BEGIN
  184.         SqInchToSqFeet:=SqInches/144.0;
  185.     END;
  186.  
  187.  
  188. FUNCTION SqFeetToSqInch(SqFeet: FLOAT): FLOAT;
  189.  
  190.     BEGIN
  191.         SqFeetToSqInch:=SqFeet*144.0;
  192.     END;
  193.  
  194.  
  195. FUNCTION SqInchToSqYard(SqInches: FLOAT): FLOAT;
  196.  
  197.     BEGIN
  198.         SqInchToSqYard:=SqInches/1296.0;
  199.     END;
  200.  
  201.  
  202. FUNCTION SqYardToSqInch(SqYards: FLOAT): FLOAT;
  203.  
  204.     BEGIN
  205.         SqYardToSqInch:=SqYards*1296.0;
  206.     END;
  207.  
  208.  
  209. FUNCTION SqInchToSqMile(SqInches: FLOAT): FLOAT;
  210.  
  211.     BEGIN
  212.         SqInchToSqMile:=SqInches/4.0144896E9;
  213.     END;
  214.  
  215.  
  216. FUNCTION SqMileToSqInch(SqMiles: FLOAT): FLOAT;
  217.  
  218.     BEGIN
  219.         SqMileToSqInch:=SqMiles*4.0144896E9;
  220.     END;
  221.  
  222.  
  223. FUNCTION SqInchToAcre(SqInches: FLOAT): FLOAT;
  224.  
  225.     BEGIN
  226.         SqInchToAcre:=SqInches/6272640.0;
  227.     END;
  228.  
  229.  
  230. FUNCTION AcreToSqInch(Acres: FLOAT): FLOAT;
  231.  
  232.     BEGIN
  233.         AcreToSqInch:=Acres*6272640.0;
  234.     END;
  235.  
  236.  
  237. FUNCTION SqInchToSqMeter(SqInches: FLOAT): FLOAT;
  238.  
  239.     BEGIN
  240.         SqInchToSqMeter:=SqInches/1550.016;
  241.     END;
  242.  
  243.  
  244. FUNCTION SqMeterToSqInch(SqMeters: FLOAT): FLOAT;
  245.  
  246.     BEGIN
  247.         SqMeterToSqInch:=SqMeters*1550.016;
  248.     END;
  249.  
  250.  
  251.  
  252. { Volume conversion }
  253.  
  254. FUNCTION CuInchToCuFeet(CuInches: FLOAT): FLOAT;
  255.  
  256.     BEGIN
  257.         CuInchToCuFeet:=CuInches/1728.0;
  258.     END;
  259.  
  260.  
  261. FUNCTION CuFeetToCuInch(CuFeet: FLOAT): FLOAT;
  262.  
  263.     BEGIN
  264.         CuFeetToCuInch:=CuFeet*1728.0;
  265.     END;
  266.  
  267.  
  268. FUNCTION  CuInchToCuYard(CuInches: FLOAT): FLOAT;
  269.  
  270.     BEGIN
  271.         CuInchToCuYard:=CuInches/46656.0;
  272.     END;
  273.  
  274.  
  275. FUNCTION  CuYardToCuInch(CuYards: FLOAT): FLOAT;
  276.  
  277.     BEGIN
  278.         CuYardToCuInch:=CuYards*46656.0;
  279.     END;
  280.  
  281.  
  282. FUNCTION  CuInchToCuMeter(CuInches: FLOAT): FLOAT;
  283.  
  284.     BEGIN
  285.         CuInchToCuMeter:=CuInches/61022.592;
  286.     END;
  287.  
  288.  
  289. FUNCTION  CuMeterToCuInch(CuMeters: FLOAT): FLOAT;
  290.  
  291.     BEGIN
  292.         CuMeterToCuInch:=CuMeters*61022.592;
  293.     END;
  294.  
  295.  
  296. { Liquid measurement conversion }
  297.  
  298. FUNCTION FluidOzToPint(FluidOz: FLOAT): FLOAT;
  299.  
  300.     BEGIN
  301.         FluidOzToPint:=FluidOz/16.0;
  302.     END;
  303.  
  304.  
  305. FUNCTION PintToFluidOz(Pints: FLOAT): FLOAT;
  306.  
  307.     BEGIN
  308.         PintToFluidOz:=Pints*16.0;
  309.     END;
  310.  
  311.  
  312. FUNCTION FluidOzToImpPint(FluidOz: FLOAT): FLOAT;
  313.  
  314.     BEGIN
  315.         FluidOzToImpPint:=FluidOz/20.0;
  316.     END;
  317.  
  318.  
  319. FUNCTION ImpPintToFluidOz(ImpPints: FLOAT): FLOAT;
  320.  
  321.     BEGIN
  322.         ImpPintToFluidOz:=ImpPints*20.0;
  323.     END;
  324.  
  325.  
  326. FUNCTION FluidOzToGals(FluidOz: FLOAT): FLOAT;
  327.  
  328.     BEGIN
  329.         FluidOzToGals:=FluidOz/128.0;
  330.     END;
  331.  
  332.  
  333. FUNCTION GalsToFluidOz(Gals: FLOAT): FLOAT;
  334.  
  335.     BEGIN
  336.         GalsToFluidOz:=Gals*128.0;
  337.     END;
  338.  
  339.  
  340. FUNCTION FluidOzToImpGals(FluidOz: FLOAT): FLOAT;
  341.  
  342.     BEGIN
  343.         FluidOzToImpGals:=FluidOz/160.0;
  344.     END;
  345.  
  346.  
  347. FUNCTION ImpGalsToFluidOz(ImpGals: FLOAT): FLOAT;
  348.  
  349.     BEGIN
  350.         ImpGalsToFluidOz:=ImpGals*160.0;
  351.     END;
  352.  
  353.  
  354. FUNCTION  FluidOzToCuMeter(FluidOz: FLOAT): FLOAT;
  355.  
  356.     BEGIN
  357.          FluidOzToCuMeter:=FluidOz/33820.0;
  358.     END;
  359.  
  360.  
  361. FUNCTION CuMeterToFluidOz(CuMeters: FLOAT): FLOAT;
  362.  
  363.     BEGIN
  364.         CuMeterToFluidOz:=CuMeters*33820.0;
  365.     END;
  366.  
  367.  
  368. { Weight conversion }
  369.  
  370. PROCEDURE OunceToLbOz(Ounces: FLOAT; VAR lb,oz: FLOAT);
  371.  
  372.     BEGIN
  373.         lb:=INT(Ounces/16.0);
  374.         oz:=Ounces-lb*16.0;
  375.     END;
  376.  
  377.  
  378. FUNCTION LbOzToOunce(lb,oz: FLOAT): FLOAT;
  379.  
  380.     BEGIN
  381.         LbOzToOunce:=lb*16.0+oz;
  382.     END;
  383.  
  384.  
  385. FUNCTION OunceToTon(Ounces: FLOAT): FLOAT;
  386.  
  387.     BEGIN
  388.         OunceToTon:=Ounces/32000.0;
  389.     END;
  390.  
  391.  
  392. FUNCTION TonToOunce(Tons: FLOAT): FLOAT;
  393.  
  394.     BEGIN
  395.         TonToOunce:=Tons*32000.0;
  396.     END;
  397.  
  398.  
  399. FUNCTION OunceToLongTon(Ounces: FLOAT): FLOAT;
  400.  
  401.     BEGIN
  402.         OunceToLongTon:=Ounces/35840.0;
  403.     END;
  404.  
  405.  
  406. FUNCTION LongTonToOunce(LongTons: FLOAT): FLOAT;
  407.  
  408.     BEGIN
  409.         LongTonToOunce:=LongTons*35840.0;
  410.     END;
  411.  
  412.  
  413. FUNCTION OunceToGram(Ounces: FLOAT): FLOAT;
  414.  
  415.     BEGIN
  416.         OunceToGram:=Ounces*28.35;
  417.     END;
  418.  
  419.  
  420. FUNCTION GramToOunce(Grams: FLOAT): FLOAT;
  421.  
  422.     BEGIN
  423.         GramToOunce:=Grams/28.35;
  424.     END;
  425.  
  426.  
  427. END.
  428.  
  429.